﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AmazonMODEL
{
    #region TiresAndWheels
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
    public partial class TiresAndWheels
    {

        private TiresAndWheelsProductType productTypeField;

        /// <remarks/>
        public TiresAndWheelsProductType ProductType
        {
            get
            {
                return this.productTypeField;
            }
            set
            {
                this.productTypeField = value;
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public partial class TiresAndWheelsProductType
    {

        private object itemField;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Tires", typeof(Tires))]
        [System.Xml.Serialization.XmlElementAttribute("Wheels", typeof(Wheels))]
        public object Item
        {
            get
            {
                return this.itemField;
            }
            set
            {
                this.itemField = value;
            }
        }
    }

    #region Tires
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
    public partial class Tires
    {

        private string vehicleServiceTypeField;

        private TiresConstructionType constructionTypeField;

        private bool constructionTypeFieldSpecified;

        private string loadIndexField;

        private TiresSpeedRating speedRatingField;

        private bool speedRatingFieldSpecified;

        private string uTQGRatingField;

        private TiresSpecialFeatures specialFeaturesField;

        private bool specialFeaturesFieldSpecified;

        private string modelNameField;

        private LengthDimension rimDiameterField;

        private string sectionWidthField;

        private LengthDimension tireAspectRatioField;

        private LengthDimension treadDepthField;

        private string partTypeIDField;

        private string itemPackageQuantityField;

        /// <remarks/>
        public string VehicleServiceType
        {
            get
            {
                return this.vehicleServiceTypeField;
            }
            set
            {
                this.vehicleServiceTypeField = value;
            }
        }

        /// <remarks/>
        public TiresConstructionType ConstructionType
        {
            get
            {
                return this.constructionTypeField;
            }
            set
            {
                this.constructionTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ConstructionTypeSpecified
        {
            get
            {
                return this.constructionTypeFieldSpecified;
            }
            set
            {
                this.constructionTypeFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "positiveInteger")]
        public string LoadIndex
        {
            get
            {
                return this.loadIndexField;
            }
            set
            {
                this.loadIndexField = value;
            }
        }

        /// <remarks/>
        public TiresSpeedRating SpeedRating
        {
            get
            {
                return this.speedRatingField;
            }
            set
            {
                this.speedRatingField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool SpeedRatingSpecified
        {
            get
            {
                return this.speedRatingFieldSpecified;
            }
            set
            {
                this.speedRatingFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string UTQGRating
        {
            get
            {
                return this.uTQGRatingField;
            }
            set
            {
                this.uTQGRatingField = value;
            }
        }

        /// <remarks/>
        public TiresSpecialFeatures SpecialFeatures
        {
            get
            {
                return this.specialFeaturesField;
            }
            set
            {
                this.specialFeaturesField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool SpecialFeaturesSpecified
        {
            get
            {
                return this.specialFeaturesFieldSpecified;
            }
            set
            {
                this.specialFeaturesFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string ModelName
        {
            get
            {
                return this.modelNameField;
            }
            set
            {
                this.modelNameField = value;
            }
        }

        /// <remarks/>
        public LengthDimension RimDiameter
        {
            get
            {
                return this.rimDiameterField;
            }
            set
            {
                this.rimDiameterField = value;
            }
        }

        /// <remarks/>
        public string SectionWidth
        {
            get
            {
                return this.sectionWidthField;
            }
            set
            {
                this.sectionWidthField = value;
            }
        }

        /// <remarks/>
        public LengthDimension TireAspectRatio
        {
            get
            {
                return this.tireAspectRatioField;
            }
            set
            {
                this.tireAspectRatioField = value;
            }
        }

        /// <remarks/>
        public LengthDimension TreadDepth
        {
            get
            {
                return this.treadDepthField;
            }
            set
            {
                this.treadDepthField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "positiveInteger")]
        public string PartTypeID
        {
            get
            {
                return this.partTypeIDField;
            }
            set
            {
                this.partTypeIDField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "positiveInteger")]
        public string ItemPackageQuantity
        {
            get
            {
                return this.itemPackageQuantityField;
            }
            set
            {
                this.itemPackageQuantityField = value;
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum TiresConstructionType
    {

        /// <remarks/>
        B,

        /// <remarks/>
        D,

        /// <remarks/>
        R,
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum TiresSpeedRating
    {

        /// <remarks/>
        A1,

        /// <remarks/>
        A2,

        /// <remarks/>
        A3,

        /// <remarks/>
        A4,

        /// <remarks/>
        A5,

        /// <remarks/>
        A6,

        /// <remarks/>
        A7,

        /// <remarks/>
        A8,

        /// <remarks/>
        B,

        /// <remarks/>
        C,

        /// <remarks/>
        D,

        /// <remarks/>
        E,

        /// <remarks/>
        F,

        /// <remarks/>
        G,

        /// <remarks/>
        J,

        /// <remarks/>
        K,

        /// <remarks/>
        L,

        /// <remarks/>
        M,

        /// <remarks/>
        N,

        /// <remarks/>
        P,

        /// <remarks/>
        Q,

        /// <remarks/>
        R,

        /// <remarks/>
        S,

        /// <remarks/>
        T,

        /// <remarks/>
        U,

        /// <remarks/>
        H,

        /// <remarks/>
        V,

        /// <remarks/>
        Z,

        /// <remarks/>
        W,

        /// <remarks/>
        Y,

        /// <remarks/>
        SR,

        /// <remarks/>
        HR,

        /// <remarks/>
        VR,

        /// <remarks/>
        ZR,

        /// <remarks/>
        Other,
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum TiresSpecialFeatures
    {

        /// <remarks/>
        run_flat,
    } 
    #endregion

    #region Wheels
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
    public partial class Wheels
    {

        private LengthDimension[] pitchCircleDiameterField;

        private WheelsConstructionType constructionTypeField;

        private bool constructionTypeFieldSpecified;

        private ColorSpecification colorSpecificationField;

        private string exteriorFinishField;

        private WheelsExteriorFinishMap exteriorFinishMapField;

        private bool exteriorFinishMapFieldSpecified;

        private WheelsSpecialFeatures specialFeaturesField;

        private bool specialFeaturesFieldSpecified;

        private string modelNameField;

        private string numberOfHolesField;

        private string numberOfSpokesField;

        private LengthDimension wheelBackspacingField;

        private LengthDimension rimDiameterField;

        private LengthDimension rimWidthField;

        private LengthDimension boreDiameterField;

        private LengthDimension offsetField;

        private string partTypeIDField;

        private string itemPackageQuantityField;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("PitchCircleDiameter")]
        public LengthDimension[] PitchCircleDiameter
        {
            get
            {
                return this.pitchCircleDiameterField;
            }
            set
            {
                this.pitchCircleDiameterField = value;
            }
        }

        /// <remarks/>
        public WheelsConstructionType ConstructionType
        {
            get
            {
                return this.constructionTypeField;
            }
            set
            {
                this.constructionTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ConstructionTypeSpecified
        {
            get
            {
                return this.constructionTypeFieldSpecified;
            }
            set
            {
                this.constructionTypeFieldSpecified = value;
            }
        }

        /// <remarks/>
        public ColorSpecification ColorSpecification
        {
            get
            {
                return this.colorSpecificationField;
            }
            set
            {
                this.colorSpecificationField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string ExteriorFinish
        {
            get
            {
                return this.exteriorFinishField;
            }
            set
            {
                this.exteriorFinishField = value;
            }
        }

        /// <remarks/>
        public WheelsExteriorFinishMap ExteriorFinishMap
        {
            get
            {
                return this.exteriorFinishMapField;
            }
            set
            {
                this.exteriorFinishMapField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ExteriorFinishMapSpecified
        {
            get
            {
                return this.exteriorFinishMapFieldSpecified;
            }
            set
            {
                this.exteriorFinishMapFieldSpecified = value;
            }
        }

        /// <remarks/>
        public WheelsSpecialFeatures SpecialFeatures
        {
            get
            {
                return this.specialFeaturesField;
            }
            set
            {
                this.specialFeaturesField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool SpecialFeaturesSpecified
        {
            get
            {
                return this.specialFeaturesFieldSpecified;
            }
            set
            {
                this.specialFeaturesFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string ModelName
        {
            get
            {
                return this.modelNameField;
            }
            set
            {
                this.modelNameField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "positiveInteger")]
        public string NumberOfHoles
        {
            get
            {
                return this.numberOfHolesField;
            }
            set
            {
                this.numberOfHolesField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string NumberOfSpokes
        {
            get
            {
                return this.numberOfSpokesField;
            }
            set
            {
                this.numberOfSpokesField = value;
            }
        }

        /// <remarks/>
        public LengthDimension WheelBackspacing
        {
            get
            {
                return this.wheelBackspacingField;
            }
            set
            {
                this.wheelBackspacingField = value;
            }
        }

        /// <remarks/>
        public LengthDimension RimDiameter
        {
            get
            {
                return this.rimDiameterField;
            }
            set
            {
                this.rimDiameterField = value;
            }
        }

        /// <remarks/>
        public LengthDimension RimWidth
        {
            get
            {
                return this.rimWidthField;
            }
            set
            {
                this.rimWidthField = value;
            }
        }

        /// <remarks/>
        public LengthDimension BoreDiameter
        {
            get
            {
                return this.boreDiameterField;
            }
            set
            {
                this.boreDiameterField = value;
            }
        }

        /// <remarks/>
        public LengthDimension Offset
        {
            get
            {
                return this.offsetField;
            }
            set
            {
                this.offsetField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "positiveInteger")]
        public string PartTypeID
        {
            get
            {
                return this.partTypeIDField;
            }
            set
            {
                this.partTypeIDField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "positiveInteger")]
        public string ItemPackageQuantity
        {
            get
            {
                return this.itemPackageQuantityField;
            }
            set
            {
                this.itemPackageQuantityField = value;
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum WheelsConstructionType
    {

        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("1-piece")]
        Item1piece,

        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("2-piece")]
        Item2piece,

        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("3-piece")]
        Item3piece,
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum WheelsExteriorFinishMap
    {

        /// <remarks/>
        Chrome,

        /// <remarks/>
        Steel,

        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Brushed Aluminum")]
        BrushedAluminum,

        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Machined Aluminum")]
        MachinedAluminum,

        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Polished Aluminum")]
        PolishedAluminum,

        /// <remarks/>
        Painted,
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum WheelsSpecialFeatures
    {

        /// <remarks/>
        tpms,
    } 
    #endregion
    #endregion
}
